This application claims the priority of Korean Patent Application Nos. 2003-97176, filed on Dec. 26, 2003 and 2004-26641, filed on Apr. 19, 2004 in the Korean Intellectual Property Office, the disclosures of which are incorporated herein in their entirety by reference.
1. Field of the Invention
The present invention relates to a group communication system, and more particularly, to a relay multicast system and a method thereof.
2. Description of the Related Art
Recently, group communication applications such as live broadcasts and network games have been developed. To provide group communication over the Internet, since one sender must repeatedly transmit the same data to a plurality of recipients, network resources are wasted and the load of a transmission server increases.
To solve this problem, Internet protocol (IP) multicast technology had been suggested. However, because of problems such as having to change all routers to multicast routers, the multicast technology has not become popular yet, and only partial infrastructures, such as campus networks, company networks, or experimental networks, have adopted the multicast technology. Since the costs for changing all existing routers to multicast routers are high, IP multicast addresses must be allocated, and technical problems related to multicast routing protocols and hardware management mechanisms exist, the multicast technology cannot perfectly support network communication. One of the technical problems preventing use of the multicast technology is related to the load of a router. A conventional multicast backbone router wastes too many resources to manage frequent routing table change caused by members who occasionally join/leave a group. A main cause of the large load is not using an IP unicast mechanism as an addressing system. In an IP unicast environment, a hierarchical addressing system can be built by using static addresses included in an address (network address) block of a network to which every network interface card (NIC) of a system belongs. However, in an IP multicast environment, even though a system has one NIC, the system uses a dynamic, non-hierarchical IP addressing system which allows the system to have or change one or more addresses at any time when opening and terminating applications. Therefore, In the IP unicast environment, a data route between routers can be set regardless of whether an application program is started. To route data in the IP multicast environment, an application program joins a communication group, the data route is set between IP multicast routers, and a communication route of the data is generated.
Recently, technology allowing multicasting to be performed using a program in an application layer without changing connection equipment has been developed. A multicast method used by the technology allows IP multicasting between a sender and recipients to be performed by connecting a non-multicast area, in which a multicast router is not directly connected to a multicast backbone, to the multicast backbone via a virtual multicast router using tunneling technology. Even though general-use personal computer (PC) users can use IP multicasting by accessing a virtual multicast router using the multicast method, IP multicast address collision and an increased load for managing multicast routing status information in each multicast device cannot be completely prevented. Also, since the tunneling technology used to connect a non-multicast area to a multicast backbone uses only tunneling between the non-multicast area and a local area hop, a bottleneck can occur at intermediate nodes for tunneling. As described above, in an overlay or application layer multicast mechanism allowing a terminal host joining relevant communication to control data transfer from a sender to recipients without an IP multicast router, since the terminal host, such as a general-use PC or a workstation, not network equipment such as a router, is used as an intermediate node for data transfer, a mechanism that can efficiently set a data transfer route and handle various errors such as node termination is required.